<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>layui将原始树形数据转换为tree组件需要的数据格式</title>
    <script>
        window.onload = function () {
            var arr = [
                {
                    "name": "工程师",
                    "childrens": [
                        {
                            "name": "南昌",
                            "childrens": [
                                {
                                    "name": "高新区"
                                }
                            ]
                        }
                    ]
                },
                {
                    "name": "办公室",
                    "childrens": [
                        {
                            "name": "西安"
                        }
                    ]
                }
            ];
            
            // 重载数组，将原始树形数据转换为tree树形标准格式
            function reloadArr(arr) {
                if (!arr) return []

                // 遍历数组
                var newArr = arr.map(item => {
                    var children = []; // 定义子元素集合

                    // 判断是否存在子元素childrens 且 childrens为数组类型
                    if (item.childrens && Array.isArray(item.childrens)) {
                        // 重载子元素集合
                        children = reloadArr(item.childrens);
                    }
                    // 重新构造对象
                    var newObj = {
                        title: item.name,
                        children: children
                    }
                    // 返回新的对象
                    return newObj;
                });

                // 数组重载完成，返回新格式数组
                return newArr;
            }

            // 将原始树形数据转换为tree组件需要的数据格式
            arr = reloadArr(arr);
        };
    </script>
</head>

<body>

</body>

</html>